From: Alejandro PiƱeiro Date: Thu, 22 Aug 2013 21:15:35 +0000 (+0200) Subject: a11y: using generic accessible at slider X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~3591 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=84d8d4f622d398bc7378c0b3594492be2cf858ff;p=gnome-shell.git a11y: using generic accessible at slider Needed in order to fill the AtkValue implementation using signal callbacks (ala ShellGenericContainer). https://bugzilla.gnome.org/show_bug.cgi?id=648623 --- diff --git a/js/ui/slider.js b/js/ui/slider.js index ab90d61d2..e098846c5 100644 --- a/js/ui/slider.js +++ b/js/ui/slider.js @@ -29,6 +29,17 @@ const Slider = new Lang.Class({ this._releaseId = this._motionId = 0; this._dragging = false; + + this._customAccessible = St.GenericAccessible.new_for_actor(this.actor); + this.actor.set_accessible(this._customAccessible); + + this._customAccessible.connect('get-current-value', Lang.bind(this, this._getCurrentValue)); + this._customAccessible.connect('get-minimum-value', Lang.bind(this, this._getMinimumValue)); + this._customAccessible.connect('get-maximum-value', Lang.bind(this, this._getMaximumValue)); + this._customAccessible.connect('get-minimum-increment', Lang.bind(this, this._getMinimumIncrement)); + this._customAccessible.connect('set-current-value', Lang.bind(this, this._setCurrentValue)); + + this.connect('value-changed', Lang.bind(this, this._valueChanged)); }, setValue: function(value) { @@ -204,6 +215,30 @@ const Slider = new Lang.Class({ this.emit('value-changed', this._value); }, + _getCurrentValue: function (actor) { + return this._value; + }, + + _getMinimumValue: function (actor) { + return 0; + }, + + _getMaximumValue: function (actor) { + return 1; + }, + + _getMinimumIncrement: function (actor) { + return 0.1; + }, + + _setCurrentValue: function (actor, value) { + this._value = value; + }, + + _valueChanged: function (slider, value, property) { + this._customAccessible.notify ("accessible-value"); + }, + get value() { return this._value; }